The present invention relates to accessing legacy data sources such as IBM 3270 applications. In particular, the present invention relates to accessing legacy applications utilizing a web browser.
Changes in the use of computers has resulted in a shift from a computing model with a large host central processing system which was accessed through terminals with little if any computing power towards a more distributed environment, such as the Internet or corporate intranets, where many transactions utilize the client/server computing model. However, many companies have extensive capital investments in applications and systems which utilized the host/terminal computing model utilized with the central processing xe2x80x9cmainframexe2x80x9d and terminals. Furthermore, these applications were often developed for specific protocols, for example as 3270, 5250 or VT terminal applications. Many of these applications were text-based applications which do not take advantage of the graphics capabilities of modern workstations. Also, many of these applications may be too computational or data intensive to be readily ported to the client/server computing model without still requiring a mainframe as the server computer.
To allow the continued use of these xe2x80x9clegacyxe2x80x9d data sources, such as 3270 applications or database applications, The assignee of the present application International Business Machines Corporation has provided several mechanisms for accessing these legacy applications through a user""s web browser. Such access allows continued use of the legacy data sources over, for example, the Internet or a company""s intranet. In one example, a legacy data source is accessed by utilizing the web browser to execute a terminal emulation program which provides access to the legacy data source. Such terminal emulation solutions, however, typically only provided the original text based displays of the legacy data source in a window displayed on the end user""s workstation.
While a terminal emulation system does provide access to legacy data sources, such a system may not take advantage of the graphic capabilities which many user""s workstations are capable of and which users of web based applications have come to expect.
Furthermore, the terminal emulation solutions typically required users to understand and operate the legacy applications in their original form and did not take advantage of the more user friendly graphical interfaces which may be provided through the graphics capabilities of a typical workstation. To better utilize all of the capabilities which web access to legacy data sources made possible, International Business Machines Corporation introduced Host Publisher Version 1 as part of its eNetwork Communications Server for Windows NT. Host Publisher Version 1 provided a graphic interface to legacy data sources for users of Windows NT compatible systems through the user""s web browser.
Host Publisher Version 1 provided browser access to legacy data sources through the use of integration objects which were object oriented programming objects which included a method which accessed the legacy data source to execute an application and provided the results of the application to the end user as a Hyper-Text Markup Language (HTML) page which was interpretable by the user""s web browser. A user would request an application and Host Publisher Version 1 would instantiate the integration object corresponding to the requested application. The integration object assumed that the legacy data source was in an initial state and returned the legacy data source to that initial state upon completion of its method. Thus, for example, an integration object would assume that a 3270 session was in the xe2x80x9creadyxe2x80x9d state when it was invoked and would return the 3270 session to the xe2x80x9creadyxe2x80x9d state upon completion. Each application had a single integration object associated with it. Integration objects in Host Publisher Version 1 were standalone applications in that each integration object did not require interaction with any other integration object to execute its associated application.
While Host Publisher Version 1 provided improvements over text based terminal emulation in providing browser oriented access to legacy data sources, the integration objects of Host Publisher Version 1 could be difficult to program to provide complex applications as only one integration object was associated with an application. Thus, a developer would need to know details of accessing the legacy data source in order to incorporate this access into the integration object. Furthermore, because each application was a single integration object, all of the complexity of the application would need to be incorporated into the single integration object. Furthermore, Host Publisher Version 1 was limited to the Windows NT environment.
In light of the above discussion, improvements are needed in browser access to legacy data sources.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products for improved browser access to legacy data sources.
It is a further object of the present invention to reduce the difficulty of programming more complex applications for access to legacy data sources.
Still another object of the present invention is to provide increased flexibility in programming browser oriented applications which access legacy data sources.
These and other objects may be provided, according to the present invention, by methods, systems and computer program products which provide data to an end user from a host application or a database application by providing a plurality of integration objects which communicate with the host application or the database application and which provide information for communication with a browser application of the end user. At least two of the integration objects are chained such that instantiation of a first one of the integration objects provides an intermediate state as a start state for use by the second one of the integration objects. Furthermore, at least one of the two integration objects provides data for display by the browser application of the end user.
By chaining integration objects together to build an application, the present invention may allow a developer to build complex applications from simpler building blocks. Furthermore, by allowing the final state of an integration object to be an intermediate state, rather than the start state of the integration object, the complexity of the integration objects may also be reduced. For example, the integration objects no longer need to start and end in the session xe2x80x9creadyxe2x80x9d state but may stop in any session state which would then be used as the start state of the next integration object. Also, chaining integration objects allows for a development environment where the developer need not know the details of the underlying legacy data source access but may merely chain predefined integration objects to provide the desired result. Furthermore, the developer need not know the details of how the chaining is accomplished but may be provided with a graphical interface where the chaining relationships are defined.
In a further embodiment of the present invention, a plurality of browser interpretable pages are provided which are accessible to the browser application. The integration objects are embedded into at least one of the plurality of browser interpretable pages. Furthermore, the first of the two integration objects may provide a start state for the second of the two integration objects by providing an output of the first of the two integration objects as an input to the second of the two integration objects.
The integration objects may be embedded into a single browser interpretable page, in which case the integration objects may be chained by sequentially invoking methods associated with the integration objects. Furthermore, the integration objects may be embedded into separate browser interpretable pages in which case the integration objects are chained by sequentially invoking at least one method associated with a corresponding one of the at least two integration objects when the corresponding browser interpretable pages are accessed. The browser interpretable pages may be consecutively or nonconsecutively accessed. If the pages are nonconsecutively accessed, the first of the two integration objects provides a start state for the second of the two integration objects by storing an output of the first of the two integration objects as a session variable accessible to subsequent browser interpretable pages so as to provide an input to the second of the two integration objects embedded in the non-consecutive browser interpretable page.
In a still further embodiment of the present invention a method of the first of the two integration objects may obtain user input from the user which is provided as input to the second of the two integration objects. Furthermore, the integration objects may render data obtained from the either the host application or the database for display by the browser application.
Preferably, the integration objects are Java Beans embedded in a Java Server Page (JSP) page. Furthermore, the results data may be rendered and incorporated into an HTML page which includes a JSP tag corresponding to the bean of the integration object. The HTML page with the incorporated results data may then be provided to the browser application.
Through the utilization of the Java and JSP pages, the present invention provides for platform independent applications. Furthermore, the applications may be created by creating HTML/JSP pages which incorporate the integration objects which allows a developer to develop an application without detailed knowledge of the underlying access methods of the host or database applications. Thus, the present invention may provide more flexibility in developed applications, a simpler approach to generating complex applications by chaining integration objects as building blocks for the application and platform independence through the use of Java and JSP pages.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and computer program products are also provided.